package com.ywj.demo06_usePrinciple;

import java.util.Hashtable;
import java.util.concurrent.ConcurrentHashMap;

public class Demo01 {
    public static void main(String[] args) {
        Hashtable<String, Object> hashtable = new Hashtable<>();

        //Hashtable增删改查方法都加了锁，同步方法用的锁 lis    用的同一把锁??
        //何时用不同锁、用同一把锁
        Hashtable hs = new Hashtable();
        hs.put("aa", "bb");
        hs.put("xx", "yy");
        hs.get("a");
        hs.get("b");
        hs.remove("b");


        //添加元素时  无元素 cas；   有元素  头里面的第一个元素   不同锁
        ConcurrentHashMap ch = new ConcurrentHashMap();

    }


    //两段毫无业务关系的代码 不要用类名.class当锁      用同一个锁，无法抢到锁 并发效率低下
    public void test01() {
        synchronized (Demo01.class) {

        }
    }

    public void test02() {
        synchronized (Demo01.class) {

        }
    }

}
